import { lazyReportBatch } from '../report.js';

export default function observerLoad() {
    // 在 pageshow 事件触发后的下一帧，计算并打印出从 pageshow 事件触发到当前时刻所经过的时间
    window.addEventListener("pageshow",function(event) {
        // requestAnimationFrame 是一个用于在浏览器下一帧渲染之前执行回调函数的方法。
        requestAnimationFrame(() => {
            ['load'].forEach((type) => {
                const reportData = {
                    type:"performace",
                    subType:type,
                    pageUrl:window.location.href,
                    startTime:performance.now() - event.timeStamp
                }
                lazyReportBatch(reportData);
            })
        },true);
    })
}
// 感觉上面算的不准，正确的计算onLoad时间可能是：
// const observer = new PerformanceObserver((list) => {
//     for (const entry of list.getEntries()) {
//         if (entry.entryType === "navigation") {
//             observer.disconnect();
//             console.log("页面 onload 时间：", entry.loadEventEnd - entry.startTime, "毫秒");
//         }
//     }
// });
// observer.observe({ type: "navigation", buffered: true });

